<?php
 

/* Check if this is a valid include */
if (!defined('IN_SCRIPT')) {die($hdlang['attempt']);}


/***************************
Function hd_formatDate()
***************************/
function hd_formatDate($dt)
{
    $dt=str_replace(' ','<br>',$dt);
    return($dt);
} // End hd_formatDate()


/***************************
Function hd_makeURL()
***************************/
function hd_makeURL($strUrl)
{
    $myMsg = ' ' . $strUrl;
    $myMsg = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "$1<a href=\"$2\" target=\"_blank\">$2</a>", $myMsg);
    $myMsg = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "$1<a href=\"http://$2\" target=\"_blank\">$2</a>", $myMsg);
    $myMsg = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "$1<a href=\"mailto:$2@$3\">$2@$3</a>", $myMsg);
    $myMsg = substr($myMsg, 1);
    return($myMsg);
} // End hd_makeURL()


/***************************
Function hd_isNumber()
***************************/
function hd_isNumber($in,$error=0) {

    $in = trim($in);

    if (preg_match("/\D/",$in) || $in=="")
    {
        if ($error)
        {
            hd_error($error);
        }
        else
        {
            return '';
        }
    }

    return $in;

} // END hd_isNumber()


/***************************
Function hd_PasswordSyntax()
***************************/
function hd_PasswordSyntax($password,$error,$checklength=1) {

    if (preg_match("/\W|\_|\./",$password) || empty($password))
    {
        hd_error($error);
    }

    if ($checklength==1 && strlen($password) < 5)
    {
        hd_error($error);
    }

    return $password;

} // END hd_PasswordSyntax()


/***************************
Function hd_validateURL()
***************************/
function hd_validateURL($url,$error) {

    $url = trim($url);

    if (preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i",$url))
    {
        return $url;
    }

    hd_error($error);

} // END hd_validateURL()


/***************************
Function hd_input()
***************************/
function hd_input($in,$error=0) {

    $in = trim($in);

    if (strlen($in))
    {
        $in = htmlspecialchars($in);
        $in = preg_replace('/&amp;(\#[0-9]+;)/','&$1',$in);
    }
    elseif ($error)
    {
        hd_error($error);
    }

    if (!ini_get('magic_quotes_gpc'))
    {
        if (!is_array($in))
            $in = addslashes($in);
        else
            $in = hd_slashArray($in);
    }

    return $in;

} // END hd_input()


/***************************
Function hd_validateEmail()
***************************/
function hd_validateEmail($address,$error,$required=1) {

    $address = trim($address);

    if (preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$address))
    {
        return $address;
    }

    if ($required) {
        hd_error($error);
    } else {
        return '';
    }

} // END hd_validateEmail()

/***************************
Function hd_myResidences()
***************************/
function hd_myResid($what='id') {

    if (!empty($_SESSION['isadmin']))
    {
        return '1';
    }
    else
    {
        $mycat_sql='(';
        $i=1;
        foreach ($_SESSION['residences'] as $mycat)
        {
            if ($i) {
                $mycat_sql.=" `$what`=$mycat ";
            } else {
                $mycat_sql.=" OR `$what`=$mycat ";
            }
            $i=0;
        }
        $mycat_sql.=')';
        return $mycat_sql;
    }

} // END hd_myResid()

/***************************
Function hd_myResidences()
***************************/
function hd_myResidences($what='residence') {

    if (!empty($_SESSION['isadmin']))
    {
        return '1';
    }
    else
    {
        $mycat_sql='(';
        $i=1;
        foreach ($_SESSION['residences'] as $mycat)
        {
            if ($i) {
                $mycat_sql.=" `$what`=$mycat ";
            } else {
                $mycat_sql.=" OR `$what`=$mycat ";
            }
            $i=0;
        }
        $mycat_sql.=')';
        return $mycat_sql;
    }

} // END hd_myResidences()


/***************************
Function hd_okResidence()
***************************/
function hd_okResidence($res) {

    if (!empty($_SESSION['isadmin']))
    {
        return true;
    }
    elseif (in_array($res,$_SESSION['residences']))
    {
        return true;
    }
    else
    {
        global $hdlang;
        hd_error($hdlang['not_authorized_requests']);
    }

} // END hd_okResidence()


/***************************
Function hd_session_regenerate_id()
***************************/
function hd_session_regenerate_id() {

    if (version_compare(phpversion(),"4.3.3",">=")) {
       session_regenerate_id();
    } else {
        $randlen = 32;
        $randval = '0123456789abcdefghijklmnopqrstuvwxyz';
        $random = '';
        $randval_len = 35;
        for ($i = 1; $i <= $randlen; $i++) {
            $random .= substr($randval, rand(0,$randval_len), 1);
        }

        if (session_id($random)) {
            setcookie(
                session_name('hd'),
                $random,
                ini_get("session.cookie_lifetime"),
                "/"
            );
            return true;
        } else {
            return false;
        }
    }

} // END hd_session_regenerate_id()


/***************************
Function hd_isAdmin()
***************************/
function hd_isAdmin() {

    if (empty($_SESSION['isadmin']))
    {
        global $hdlang;
        hd_error("$hdlang[must_be_admin]<p>&nbsp;</p>
        <p align=\"center\"><a href=\"admin.php\">$hdlang[click_login]</a>");
    }
    else
    {
        hd_session_regenerate_id();
        return true;
    }

} // END hd_isAdmin()


/***************************
Function hd_isLoggedIn()
***************************/
function hd_isLoggedIn($request_id=0) {

    if (empty($_SESSION['id']))
    {
        $referer = hd_input($_SERVER['REQUEST_URI']);
        $referer = str_replace('&amp;','&',$referer);

        if (strpos($referer,'admin_reply_request.php')!== false) {
            $referer = 'admin_main.php';
        }

        $url='admin.php?a=login&notice=1&goto='.urlencode($referer);
        Header("Location: $url");
        exit();
    }
    else
    {
        hd_session_regenerate_id();
        return true;
    }

} // END hd_isLoggedIn()


/***************************
Function hd_session_start()
***************************/
function hd_session_start() {

    session_name('hd');

    if (session_start()) {
        header ('P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"');
        return true;
    } else {
        global $hd_settings, $hdlang;
        hd_error("$hdlang[no_session] $hdlang[contact_webmaster] $hd_settings[webmaster_mail]");
    }

} // END hd_session_start()


/***************************
Function hd_session_stop()
***************************/
function hd_session_stop() {

    session_unset();
    session_destroy();
    return true;

} // END hd_session_stop()


/***************************
Function hd_slashArray()
***************************/
function youraff_slashArray ($a)
{
    while (list($k,$v) = each($a))
    {
        if (!is_array($v))
            $a[$k] = addslashes($v);
        else
            $a[$k] = hd_slashArray($v);
    }

    reset ($a);
    return ($a);
} // END hd_slashArray()


/***************************
Function hd_error()
***************************/
function hd_error($error) {
global $hd_settings, $hdlang;

require_once('inc/header.inc.php');
?>

<p class="smaller"><a href="<?php echo $hd_settings['site_url']; ?>"
class="smaller"><?php echo $hd_settings['site_title']; ?></a> &gt;
<a href=<?php
if (empty($_SESSION['id'])) {echo "\"index.php?a=start\"";}
else {echo "\"admin_main.php\"";}
?> class="smaller"><?php echo $hd_settings['hd_title']; ?></a>
&gt; <?php echo $hdlang['error']; ?><br>&nbsp;</p>
</td>
</tr>
<tr>
<td>

<p>&nbsp;</p>
<h3 align="center"><?php echo $hdlang['error']; ?></h3>
<p>&nbsp;</p>

<p align="center"><?php echo $error; ?></p>
<p>&nbsp;</p>
<p align="center"><a href="javascript:history.go(-1)"><?php echo $hdlang['back']; ?></a></p>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<?php
require_once('inc/footer.inc.php');
exit();
} // END hd_error()

?>
